Type-Safe Prototype-Based Component Evolution
نویسنده
چکیده
Component-based programming is currently carried out using mainstream object-oriented languages. These languages have to be used in a highly disciplined way to guarantee flexible component composition and extensibility. This paper investigates abstractions for component-oriented programming on the programming language level. We propose a simple prototype-based model for first-class components on top of a class-based object-oriented language. The model is formalized as an extension of Featherweight Java. Our calculus includes a minimal set of primitives to dynamically build, extend, and compose software components, while supporting features like explicit context dependencies, late composition, unanticipated component extensibility, and strong encapsulation. We present a type system for our calculus that ensures type-safe component definition, composition, and evolution.
منابع مشابه
Towards a Versioning Model for Component-based Software Assembly
The world of software development has rapidly changed in the last few years due to the adoption of component−based technologies. The classical software configuration management, which deals with source code versioning, becomes insufficient in the world where most components are distributed in a binary form. This paper focuses on solving versioning issues in the SOFA/DCUP component environment, ...
متن کاملTowards Reusable Heterogeneous Data-Centric Disentangled Parts
This paper presents our ongoing research towards a safe system evolution. Our approach is based on data-centric, objectoriented systems. Within those systems we utilise (i) multi-dimensional separation of concerns, (iii) explicit, language-independent type declarations in the form of an ontology and (ii) component technology. With this combined approach it is possible to cope with a growing cod...
متن کاملIntegrating Segmentation and Paging Protection for Safe, Efficient and Transparent Software Extensions
The technological evolution towards extensible software architectures and component-based software development demands safe, efficient, flexible, and easy-touse extension mechanisms to provide protection among software modules residing in the same address space. While a number of software-based approaches have been proposed in the last several years, no clear winner emerges that satisfactorily ...
متن کاملThe Ninja
We present the design and implementation of the \Ninja Jukebox", an infrastructural service that allows a community of users to build a distributed, collaborative music repository that delivers digital music to Internet clients, and that performs simple collaborative ltering based on users' song preferences inferred by the service. The Jukebox, implemented in Java, was designed to allow rapid s...
متن کاملDeja-vu.net a Framework for Evolution of Component-based Software Systems
Component Based Software Engineering (CBSE) focuses on the development of software systems composed from reusable binary components. In such component-based software systems, applications are evolved through the selective evolution of individual components. Despite its evident benefits, this ‘plug and play’ approach to software evolution is restricted by a number of practical problems. The evol...
متن کامل